home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / BRAIN12.ZIP / brain12.doc < prev    next >
Text File  |  1994-03-05  |  39KB  |  1,011 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.           The Brain
  16.           Version 1.2s
  17.  
  18.           User's Manual
  19.           _____________________________
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.           (c) Copyright, All Rights Reserved, 1994, DP Computing
  31.  
  32.           DP Computing
  33.           PO Box 712
  34.           Noarlunga Center SA 5168
  35.           Australia
  36.  
  37.           Internet:
  38.         dpc@mep.com
  39.         perkovic@cleese.apana.org.au
  40.  
  41.  
  42.       The Brain v1.2 - User's Manual                                Page 2
  43.       ____________________________________________________________________
  44.  
  45.  
  46.  
  47.                    Table Of Contents
  48.                    -----------------
  49.  
  50.  
  51.         Introduction  .............................  3
  52.  
  53.         Program Files  ............................  4
  54.  
  55.         Introduction To Neural Networks  ..........  5
  56.  
  57.            What Are Neural Networks?  .............  5
  58.  
  59.            How Do Neural Networks Learn?  .........  5
  60.  
  61.            Uses of Neural Networks  ...............  7
  62.  
  63.         Training And Testing The Brain  ...........  8
  64.  
  65.            Training The Network  ..................  8
  66.  
  67.            Hints On Training A Network  ...........  9
  68.  
  69.            Testing The Network  ...................  9
  70.  
  71.            Input File Layout (with examples)  ..... 10
  72.  
  73.         Tutorial  ................................. 14
  74.  
  75.         General Texts On Neural Networks  ......... 17
  76.  
  77.         License Agreement  ........................ 18
  78.  
  79.         Support Policy  ........................... 19
  80.  
  81.         Distribution Policy  ...................... 19
  82.  
  83.         About This Manual  ........................ 20
  84.  
  85.       The Brain v1.2 - User's Manual                                Page 3
  86.       ____________________________________________________________________
  87.  
  88.    
  89.                   Introduction
  90.                   ------------
  91.  
  92.       Get ready to explore the exciting world of artificial intelligence.
  93.       The Brain is an advanced neural network simulator that is simple
  94.       enough to be used by non-technical people, yet sophisticated enough
  95.       for serious research work.  Based upon the backpropagation learning
  96.       algorithm, The Brain allows you to train the computer to learn what
  97.       you want it to learn.  The Brain gives you a glimpse into the future
  98.       of computing.
  99.  
  100.       With The Brain, you can create, train, and test your own neural
  101.       networks.  Three sample networks have been included with this
  102.       distribution package:
  103.  
  104.      - a network to recognise the numerals 1, 2, and 3.
  105.  
  106.      - a network to process the logical AND function.
  107.  
  108.      - a network to process the logical XOR function.
  109.  
  110.       This manual will outline the features and capabilities of The Brain
  111.       as well as providing you with a brief overview of the concepts and
  112.       applications of neural networks.  Several excellent books are listed
  113.       at the end of this manual for those interested in a more thorough
  114.       introduction to neural networks.
  115.  
  116.       The Brain is a shareware product.  That means you get to try before
  117.       you buy.  If you are satisfied with The Brain and intend to continue
  118.       using it, you are required to register it.  See the 'register.doc'
  119.       file for details on how and where you can register your copy of The
  120.       Brain.
  121.  
  122.       The Brain v1.2 - User's Manual                                Page 4
  123.       ____________________________________________________________________
  124.  
  125.  
  126.  
  127.                  Program Files
  128.                  -------------
  129.  
  130.       The distribution package of The Brain contains the following files:
  131.  
  132.         - brain12.exe     The stand alone executable version of The
  133.                   Brain.
  134.  
  135.         - brain12.doc     The documentation for The Brain (this file).
  136.  
  137.         - start-me.bat    A batch file to start The Brain in Beginners
  138.                   Mode.
  139.  
  140.         - char123.net     A sample input file to train a network to
  141.                   recognize the numerals 1, 2, and 3.
  142.  
  143.         - test123.net     A sample input file to test a network using
  144.                   the numerals 1, 2, and 3.
  145.  
  146.         - test123.wts    The weights saved after a network was trained
  147.                  to recognize the numerals 1, 2, and 3.
  148.  
  149.         - xor.net        A sample input file to train a network to
  150.                  recognize the 'xor' function.
  151.  
  152.         - and.net        A sample input file to train a network to
  153.                  recognize the 'and' function.
  154.  
  155.         - vendor.doc     Documentation for vendors, sysops, and others
  156.                  outlining our policy on distributing this
  157.                  program.
  158.  
  159.         - license.doc    The license for The Brain.
  160.  
  161.         - register.doc   Registration details.  This file explains how to
  162.                  register your copy of The Brain.  Includes
  163.                  addresses for our worldwide registration sites.
  164.  
  165.         - order.doc      Order form for The Brain.
  166.  
  167.         - support.doc    A list of our worldwide support sites.
  168.  
  169.         - nn.faq         The neural network faq (frequently asked questions)
  170.                  from the Internet news group 'comp.ai.neural.nets'.
  171.  
  172.       The Brain v1.2 - User's Manual                                Page 5
  173.       ____________________________________________________________________
  174.  
  175.  
  176.             Introduction to Neural Networks
  177.             ===============================
  178.  
  179.  
  180.                What Are Neural Networks?
  181.                -------------------------
  182.  
  183.       Expert Definition:
  184.  
  185.       A neural network is a parallel distributed information
  186.       processing structure in the form of a directed graph with the
  187.       most popular type being feed forward networks.
  188.  
  189.       Non-Technical Definition:
  190.  
  191.       A neural network can be thought of as a pattern recognition
  192.       system.  The computer learns to associate a certain pattern with
  193.       a given result.  For example, once a neural network has been
  194.       taught the characteristics of the numerals 1, 2, and 3, it
  195.       should be able to recognize those same numerals even if
  196.       presented in a different font or in a different person's
  197.       handwriting.
  198.  
  199.  
  200.               How Do Neural Networks Learn?
  201.               -----------------------------
  202.  
  203.       Think of a group of interconnected units (as in figure 1).  Data is
  204.       first presented to the system at the input layer in the form of
  205.       zeros and ones (representing 'off' and 'on' respectively).  It then
  206.       goes through a series of hidden mathematical calculations (within
  207.       the hidden layer) before being passed to the output layer, whose job
  208.       is to provide you with some sort of sensible and understandable
  209.       result.
  210.  
  211.           |  |
  212.           O  O Output Layer
  213.           |/\|
  214.           O  O Hidden Layer
  215.           |/\|
  216.           0  0 Input Layer
  217.           |  |
  218.  
  219.          (Figure 1)
  220.  
  221.       In general, neural networks can consist of any number of input,
  222.       hidden, and output units, as well as any number of hidden layers.
  223.       However, since any problem can be solved with only one hidden layer,
  224.       and since generalization on unseen data is enhanced with the use of
  225.       only one hidden layer, The Brain restricts you to a single hidden
  226.       layer.  Because of memory considerations, the unregistered version
  227.  
  228.  
  229.  
  230.       The Brain v1.2 - User's Manual                                Page 6
  231.       ____________________________________________________________________
  232.  
  233.       of The Brain can contain a maximum of 30 units.  The registered
  234.       version allows you to build bigger networks by taking advantage of
  235.       any extra memory you have available.
  236.  
  237.       Once the information has been processed through the input layer, it
  238.       is fanned out to form the input to each unit in the hidden layer.
  239.       Units in the hidden layer perform a calculation on the input that
  240.       results in a decimal number between 0 and 1. This result then serves
  241.       as the input for the output layer which again performs a calculation
  242.       and produces an output in the range 0 to 1.
  243.  
  244.       The calculations the network performs in the hidden and output
  245.       layers depend upon decimal numbers known as 'weights'.  Since each
  246.       network performs a unique task, the weights appropriate for that
  247.       network are also unique.
  248.  
  249.       To determine a network's unique set of weights, the network must
  250.       first be trained to learn how to recognize a specified input and
  251.       output pattern.  For example, to train the network to learn the
  252.       numerals 1, 2, and 3, we must supply the network with a
  253.       representation of those numerals.  We must also tell the network
  254.       what output is appropriate for each numeral.  Thus, if we input the
  255.       number one we would like the network to have the 1st output node
  256.       'on' (i.e.  1) while the other two output nodes are 'off' (i.e.  0).
  257.       When the input is 2, the 2nd output node should be 'on' while the
  258.       other two are 'off', and when the input is 3, the 3rd output node
  259.       should be 'on' while the other two output nodes are 'off'.
  260.  
  261.       Training a network consists of an iterative process in which the
  262.       network is given the desired inputs along with the correct outputs
  263.       for those inputs.  It then seeks to alter its weights to try and
  264.       produce the correct output (within a reasonable error margin).  If
  265.       it succeeds, it has learned the training set and is ready to perform
  266.       upon previously unseen data.  If it fails to produce the correct
  267.       output it re-reads the input and again tries to produce the correct
  268.       output.  The weights are slightly adjusted during each iteration
  269.       through the training set (known as a training cycle) until the
  270.       appropriate weights have been established.  Depending upon the
  271.       complexity of the task to be learned, many thousands of training
  272.       cycles may be needed for the network to correctly identify the
  273.       training set.
  274.  
  275.       Once the output is correct the weights can be used with the same
  276.       network on unseen data to examine how well it performs.  For the
  277.       example of learning the numerals 1, 2, and 3, the test data could be
  278.       one of those numerals entered in a different font or in someone
  279.       else's handwriting.
  280.  
  281.       The whole idea of a neural network is to train the network on an
  282.       input set and then to show the network a similar but different data
  283.       set which it hasn't seen before.  Hopefully the network can
  284.  
  285.  
  286.  
  287.       The Brain v1.2 - User's Manual                                Page 7
  288.       ____________________________________________________________________
  289.  
  290.       correctly recognize it.  This is very important in areas such as
  291.       handwriting recognition.  While humans can usually read handwriting
  292.       that they've never seen before, this 'simple' task is much more
  293.       difficult for computers.
  294.  
  295.  
  296.                 Uses of Neural Networks
  297.                 -----------------------
  298.  
  299.       The main driving force behind neural network research is the desire
  300.       to create a machine which works similar to the manner our own brain
  301.       works.
  302.  
  303.       Neural networks have been used in a variety of different areas to
  304.       solve a wide range of problems.  The types of problems solved by (or
  305.       currently being researched using) neural networks include:
  306.  
  307.       - voice recognition             - image recognition
  308.  
  309.       - stock-market prediction       - car navigation
  310.  
  311.       - data compression              - backgammon
  312.  
  313.       - character recognition         - chess
  314.  
  315.       - horse racing prediction       - sonar recognition
  316.  
  317.       In theory, neural networks can compute any function a normal
  318.       computer can.  In practice, neural networks are useful for problems
  319.       with a high error rate, that have many examples, and where no
  320.       algorithm exists to solve the problem.
  321.  
  322.       Professions using neural networks include:
  323.  
  324.           - Computer scientists requiring solutions to problems where
  325.         currently no algorithms exist.
  326.  
  327.           - Engineers wanting to exploit the capabilities of neural
  328.         networks in their particular application areas.
  329.  
  330.           - Cognitive scientists using neural networks to describe
  331.         models of thinking and conscience.
  332.  
  333.           - Neuro-physiologists using neural networks to describe and
  334.         explore brain functions.
  335.  
  336.           - Physicists using neural networks to model phenomena in
  337.         statistical mechanics.
  338.  
  339.           - Biologists using neural networks to model various biological
  340.         processes.
  341.  
  342.  
  343.  
  344.       The Brain v1.2 - User's Manual                                Page 8
  345.       ____________________________________________________________________
  346.  
  347.  
  348.              Training and Testing The Brain
  349.              ==============================
  350.  
  351.                   Training The Brain
  352.                   ------------------
  353.  
  354.       You can start The Brain in either of two ways:
  355.  
  356.           1) For beginners: Type 'start-me' (without the quotes) at
  357.          the DOS prompt.  This will guide the beginner through the
  358.          included tutorial/demo (see the Tutorial for more
  359.          details).
  360.  
  361.           2) For advanced users: Type 'brain12' (without the quotes)
  362.          at the DOS prompt.  This will start The Brain in normal
  363.          mode.
  364.  
  365.       After starting The Brain, the first prompt will ask you to enter the
  366.       filename in which the input data is stored.  The input file contains
  367.       the details about the problem, including the training examples and
  368.       the correct output for each example.  See the 'Input File Layout'
  369.       section for details on creating/specifying input files.
  370.  
  371.       After the input file has been correctly loaded you'll be asked
  372.       whether you want to load in a file containing a stored set of
  373.       weights.  This file must have been created by a previous training
  374.       session.  NOTE: An error will occur if you try to load a set of
  375.       weights saved for a different sized network.
  376.  
  377.       Training of the network will then occur.  Updates will be displayed
  378.       after every 100 training cycles (i.e. after 100 presentations of the
  379.       complete training set).  Training is halted when the error result (a
  380.       quadratic error function is used) drops below 0.2 or after 10000
  381.       training cycles have been processed.  Training can be terminated
  382.       prematurely by pressing control-c (i.e. while holding down the control
  383.       key press the 'c' key).  Training times vary depending upon the
  384.       network size and the speed of the machine you are using.  Large
  385.       networks can sometimes take a long time to complete the training
  386.       session.
  387.  
  388.       Once training has been completed a prompt appears asking whether you
  389.       would like to save the weights.  A set of weights is needed for
  390.       testing the network.  If the network was able to correctly identify
  391.       the desired input patterns, and you intend to test the network,
  392.       answer "y" to this prompt.  See the section on "Testing the
  393.       Network".
  394.  
  395.       Testing on unseen data can be carried out once the network has been
  396.       trained.  Unseen data refers to data similar to but different from
  397.       the data used to train the network.  For example, if you've trained
  398.  
  399.  
  400.  
  401.       The Brain v1.2 - User's Manual                                Page 9
  402.       ____________________________________________________________________
  403.  
  404.       the network on your own handwriting, test it with someone else's
  405.       handwriting).
  406.  
  407.  
  408.               Hints on Training a Network
  409.               ---------------------------
  410.  
  411.       Experimentation is required in order to enable a network to
  412.       correctly learn a particular training set.  Some networks may learn
  413.       a particular problem using only one hidden unit while others may
  414.       require 20 or 30 hidden units.  The only way to find out is to try
  415.       it!
  416.  
  417.       Networks also occasionally become stuck during learning.  Either
  418.       they take a very long time to learn a problem or they fail
  419.       completely; it all depends on the initially chosen values for the
  420.       weights.  To overcome this problem, simply train the network again.
  421.       Since The Brain randomly chooses the initial weights for the network
  422.       (assuming you haven't loaded a set of weights), one or more
  423.       additional training sessions should find an acceptable starting set
  424.       of weights .  Restarting the network should solve the problem of the
  425.       network becoming stuck.
  426.  
  427.       Research has found that a network performs best on unseen data with
  428.       a network using the least number of hidden units that can
  429.       successfully learn the training set.  If you would like good
  430.       generalization on unseen data, train the network using the minimum
  431.       number of hidden units that can successfully learn the training set.
  432.  
  433.       If the network is still unable to learn the desired input after
  434.       training, try the following:
  435.  
  436.        - add more units to the hidden layer.
  437.  
  438.        - decrease/increase the size of the training set.
  439.  
  440.        - increase the training times.
  441.  
  442.        - alter some of the parameters used in backpropagation (NOTE:
  443.          this can only be done in the registered version).
  444.  
  445.  
  446.  
  447.                   Testing The Network
  448.                   -------------------
  449.  
  450.       To test a network, start The Brain (by entering 'brain12' at the DOS
  451.       prompt).  When you are prompted for the input filename, enter the
  452.       name of the test input file.  A testing input file is almost
  453.       identical to a training input file.  The main differences are that
  454.       you provide testing examples rather than training examples and you
  455.  
  456.  
  457.  
  458.       The Brain v1.2 - User's Manual                               Page 10
  459.       ____________________________________________________________________
  460.  
  461.       omit the correct output results (The Brain should now be trained to
  462.       figure out the correct results on its own).  See the 'Input File
  463.       Layout' section for details.
  464.  
  465.       After the input file has been correctly loaded, you'll be asked if
  466.       you want to load in a previously stored set of weights.  Enter 'y',
  467.       then enter the name of the file containing the weights.  This file
  468.       should have been created after successfully completing a previous
  469.       training session.  NOTE: An error will occur if you try to load in a
  470.       set of weights saved for a different sized network.
  471.  
  472.       The inputs contained in the input file will then be fed through the
  473.       network using the weights loaded in.  The output will be displayed
  474.       once all calculations are completed.
  475.  
  476.       An example input file for testing (along with its associated
  477.       weights file) has been included with the distribution version
  478.       of The Brain:
  479.  
  480.      test123.net  Testing data for the numerals 1, 2, and 3.
  481.  
  482.      test123.wts  The weights saved after the network was trained to
  483.               recognize the numerals 1, 2, and 3.
  484.  
  485.       If the network performs poorly during testing, you can improve its
  486.       performance in two ways:
  487.  
  488.      - Add more examples into the training (for example, if you are
  489.        training the network to learn handwriting, add handwriting
  490.        samples from different/more people).
  491.  
  492.      - Ensure that the network contains the minimum number of hidden
  493.        units.
  494.  
  495.  
  496.  
  497.                    Input File Layout
  498.                    -----------------
  499.  
  500.       The input file is a text file consisting of (in the following order):
  501.       - The unit number for each of the following units:
  502.           . the first input unit. (usually 1)
  503.           . the last input unit.
  504.           . the first hidden unit.
  505.           . the last hidden unit.
  506.           . the first output unit.
  507.           . the last output unit.  (a maximum of 30 due to memory
  508.         considerations.  The registered version uses any available
  509.         extra memory to allow for more units).
  510.       - The number of training/testing examples.
  511.       - Either the word 'test' or the word 'train'.  If the input file
  512.  
  513.  
  514.  
  515.       The Brain v1.2 - User's Manual                               Page 11
  516.       ____________________________________________________________________
  517.  
  518.         represents a training session, 'train' should be used.  If the
  519.         input file represents a testing session, the word 'test'
  520.         should be used.
  521.       - The training/testing input data. This must be real
  522.         (i.e.  decimal) numbers consisting of 1.0 or 0.0 values
  523.         ('on' or 'off');
  524.       - The actual output wanted, which also must be real (i.e.
  525.         decimal) numbers.  These are omitted if you are just testing
  526.         the network.
  527.  
  528.       ---XOR Input Example---
  529.       The following is an example input file for the XOR problem using a
  530.       network with 2 inputs, 2 hidden units, and 1 output unit.  The
  531.       following example input data is contained in the file 'xor.net',
  532.       included with the distribution package.
  533.  
  534.       The XOR (exclusive or) problem is to determine when only one of two
  535.       given inputs is 'on' (i.e. The result should be 'on', a 1, if only
  536.       one of the inputs is 'on' and produce a result of 'off', a 0, when
  537.       the two inputs are either both 'on' or both 'off').
  538.  
  539.                               |
  540.                               O    output unit
  541.      inputs   output                             / \
  542.      0    0     0                               O   O  hidden units
  543.      1    0     1                               |\ /|
  544.      0    1     1                               O   O  input units
  545.      1    1     0                               |   |
  546.  
  547.       XOR Input File
  548.       --------------------------cut here--------------------------
  549.       1
  550.       2
  551.       3
  552.       4
  553.       5
  554.       5
  555.       4
  556.       train
  557.       0.0 0.0
  558.       1.0 0.0
  559.       0.0 1.0
  560.       1.0 1.0
  561.       0.0
  562.       1.0
  563.       1.0
  564.       0.0
  565.       --------------------------cut here--------------------------
  566.  
  567.       The Brain v1.2 - User's Manual                               Page 12
  568.       ____________________________________________________________________
  569.  
  570.       ---AND Input Example---
  571.       The following is an example input file for the AND problem using a
  572.       network with 2 inputs, 2 hidden units, and 1 output unit.  The
  573.       following example input data is contained in the file 'and.net',
  574.       included in the distribution package.
  575.  
  576.       The AND function is to produce an 'on' output (a 1) only if both the
  577.       inputs are 'on' otherwise produce an 'off' (a 0).
  578.  
  579.                               |
  580.                               O    output unit
  581.      inputs   output                             / \
  582.      0    0     0                               O   O  hidden units
  583.      1    0     0                               |\ /|
  584.      0    1     0                               O   O  input units
  585.      1    1     1                               |   |
  586.  
  587.       AND Input File
  588.       --------------------------cut here--------------------------
  589.       1
  590.       2
  591.       3
  592.       4
  593.       5
  594.       5
  595.       4
  596.       train
  597.       0.0 0.0
  598.       1.0 0.0
  599.       0.0 1.0
  600.       1.0 1.0
  601.       0.0
  602.       0.0
  603.       0.0
  604.       1.0
  605.       --------------------------cut here--------------------------
  606.  
  607.       ---Character Recognition Input Example---
  608.       This network is designed to recognise the characters 1, 2, and 3.
  609.      - If the network has recognised a 1 the 1st output node should
  610.        be 'on' (i.e. close to 1.0) and the other output nodes 'off'
  611.        (i.e. close to 0.0).
  612.      - If the network has recognised a 2 the 2nd output node should
  613.        be 'on' (i.e. close to 1.0) and the other output nodes 'off'
  614.        (i.e. close to 0.0).
  615.      - If the networks have recognised a 3 the 3rd output node should
  616.        be 'on' (i.e. close to 1.0) and the other output nodes 'off'
  617.        (i.e. close to 0.0).
  618.       The network consists of 20 input nodes, 3 hidden nodes, and
  619.       3 output nodes.  The following example input file is contained in
  620.       the file 'char123.net', included with the distribution package.
  621.  
  622.       The Brain v1.2 - User's Manual                               Page 13
  623.       ____________________________________________________________________
  624.  
  625.       Character Recognition Input File
  626.       --------------------------cut here--------------------------
  627.       1
  628.       20
  629.       21
  630.       23
  631.       24
  632.       26
  633.       3
  634.       train
  635.       0.0 0.0 1.0 0.0
  636.       0.0 0.0 1.0 0.0
  637.       0.0 0.0 1.0 0.0
  638.       0.0 0.0 1.0 0.0
  639.       0.0 0.0 1.0 0.0
  640.  
  641.       1.0 1.0 1.0 1.0
  642.       0.0 0.0 0.0 1.0
  643.       1.0 1.0 1.0 1.0
  644.       1.0 0.0 0.0 0.0
  645.       1.0 1.0 1.0 1.0
  646.  
  647.       1.0 1.0 1.0 1.0
  648.       0.0 0.0 0.0 1.0
  649.       0.0 1.0 1.0 1.0
  650.       0.0 0.0 0.0 1.0
  651.       1.0 1.0 1.0 1.0
  652.  
  653.       1.0 0.0 0.0
  654.       0.0 1.0 0.0
  655.       0.0 0.0 1.0
  656.       --------------------------cut here--------------------------
  657.  
  658.       NOTE: Both the XOR and the AND example training data (described
  659.       above) will most likely require a few training runs due to them both
  660.       getting stuck.  The character recognition training file should learn the
  661.       desired output about every time.
  662.  
  663.  
  664.       The Brain v1.2 - User's Manual                               Page 14
  665.       ____________________________________________________________________
  666.  
  667.  
  668.  
  669.                     Tutorial
  670.                     ========
  671.  
  672.       To demonstrate a use for neural networks let us train The Brain to
  673.       learn some numerals, namely 1, 2, and 3.
  674.  
  675.     1     1111    1111
  676.     1        1       1
  677.     1     1111     111
  678.     1     1          1
  679.     1     1111    1111
  680.  
  681.       These numerals can be represented using 0's and 1's as:
  682.  
  683.       0010    1111    1111
  684.       0010    0001    0001
  685.       0010    1111    0111
  686.       0010    1000    0001
  687.       0010    1111    1111
  688.  
  689.       Note: For illustrative purposes we are using whole numbers, '0' and
  690.       '1'.  Keep in mind that in the input file these numbers must be
  691.       presented as decimal values ('0.0' and '1.0').
  692.  
  693.       As each of the numerals consist of 20 0's and 1's, a network is
  694.       constructed that consisted of 20 inputs.  To represent a 1 the
  695.       following is presented to the network:
  696.  
  697.       00100010001000100010
  698.  
  699.       This is taken from the above representation on the numeral one.
  700.  
  701.       Similarly for a 2:
  702.  
  703.       11110001111110001111
  704.  
  705.       and for a 3:
  706.  
  707.       11110001011100011111.
  708.  
  709.       For the output layer we use 3 units.  If the network has recognized
  710.       the numeral one, the first output unit's result should be one (or
  711.       close to one) and the second and third output units should be zero
  712.       or close to zero.  If the network has recognized the numeral two, the
  713.       second output node should be one or close to one (i.e.  'on') and the
  714.       first and third units should be zero or close to zero (i.e.  'off').
  715.       Similarly, if the numeral three is recognized the first and second
  716.       output units should be 'off' and the third output unit 'on'.
  717.  
  718.  
  719.  
  720.       The Brain v1.2 - User's Manual                               Page 15
  721.       ____________________________________________________________________
  722.  
  723.       From experimentation we've found that the minimum number of hidden
  724.       units needed to correctly learn the above numerals was three.  The
  725.       input file (available in the distribution package as 'char123.net')
  726.       needed to learn the three numerals (1, 2, and 3) is:
  727.  
  728.       1                 First input node is # 1. -|
  729.       20                Last input node is # 20. -|-->(i.e. 20 input units).
  730.       21                First hidden unit.   -|
  731.       23                Last hidden unit.    -|--> (i.e. 3 hidden units).
  732.       24                First input unit. -|
  733.       26                Last input unit.  -|--> (i.e. 3 output units).
  734.       3                 Number of training examples.
  735.       train             Indicates training the network (rather than testing).
  736.       0.0 0.0 1.0 0.0   -|
  737.       0.0 0.0 1.0 0.0    |
  738.       0.0 0.0 1.0 0.0    |--> The input pattern for the numeral one.
  739.       0.0 0.0 1.0 0.0    |
  740.       0.0 0.0 1.0 0.0   -|
  741.  
  742.       1.0 1.0 1.0 1.0   -|
  743.       0.0 0.0 0.0 1.0    |
  744.       1.0 1.0 1.0 1.0    |--> The input pattern for the numeral two.
  745.       1.0 0.0 0.0 0.0    |
  746.       1.0 1.0 1.0 1.0   -|
  747.  
  748.       1.0 1.0 1.0 1.0   -|
  749.       0.0 0.0 0.0 1.0    |
  750.       0.0 1.0 1.0 1.0    |--> The input pattern for the numeral three.
  751.       0.0 0.0 0.0 1.0    |
  752.       1.0 1.0 1.0 1.0   -|
  753.  
  754.       1.0 0.0 0.0       The output needed when the numeral one is presented.
  755.       0.0 1.0 0.0       The output needed when the numeral two is presented.
  756.       0.0 0.0 1.0       The output needed when the numeral three is presented.
  757.  
  758.       Note: the comments on the right should not be included in the file.
  759.       Each input pattern is presented on 5 lines to aid in visualization
  760.       of each numeral; presentation of each pattern on a single line would
  761.       make no difference.
  762.  
  763.       To run through the tutorial, enter 'start-me' at the DOS prompt.
  764.       Enter 'char123.net' when the input file is requested.  Press 'n'
  765.       when asked if you want to load a set of saved weights.  Learning of
  766.       the training set will then start (i.e.  it is now learning how to
  767.       distinguish between the numerals 1, 2, and 3).
  768.  
  769.       The network should take less than one thousand training cycles (i.e.
  770.       less than one thousand presentations of the 3 input patterns) to
  771.       learn the 3 patterns.  If it is taking longer it has most likely
  772.       become stuck (as described in the section 'Training the Network') and
  773.       you should stop the network (by pressing 'control-c') and start the
  774.       training again by restarting the program.
  775.  
  776.  
  777.       The Brain v1.2 - User's Manual                               Page 16
  778.       ____________________________________________________________________
  779.  
  780.  
  781.  
  782.       After training has been completed you are given the option of saving
  783.       the weights.  The output of the network is then displayed.  The
  784.       output will look something similar to the following:
  785.  
  786.       Training example 1
  787.       0.920013 0.012343 0.211126
  788.       Training example 2
  789.       0.000129 0.834562 0.123983
  790.       Training example 3
  791.       0.300403 0.203044 0.970030
  792.  
  793.       From the output we can see that for the first example the first
  794.       output unit is close to being fully 'on' (i.e.  close to 1) while
  795.       the other two output units are close to being fully 'off' (i.e.
  796.       close to 0).  This indicates that the network has recognized that
  797.       the first training example is, in fact, a numeral one.
  798.  
  799.       With the 2nd training example, the first and third output units are
  800.       'off' while the 2nd output unit is 'on', indicating we have
  801.       identified the numeral two.
  802.  
  803.       A similar output is noted for the third training example: the first
  804.       and second output units are 'off' with the third being 'on', showing
  805.       the network correctly identifying the numeral three.
  806.  
  807.       Once the network is trained, the weights can be saved and then used
  808.       to test the network on unseen data (see "Testing the Network").  For
  809.       this example we can test the network using different representations
  810.       of the numerals 1, 2, and 3 (i.e. alter their shapes by moving,
  811.       shrinking, or expanding them).
  812.  
  813.       Most likely you will notice that the performance on the test data is
  814.       poor.  To get around this problem try expanding the training set by
  815.       adding more examples of the numerals 1, 2, and 3, and by retraining and
  816.       retesting the network.
  817.  
  818.  
  819.       The Brain v1.2 - User's Manual                               Page 17
  820.       ____________________________________________________________________
  821.  
  822.  
  823.             General Texts on Neural Networks
  824.             --------------------------------
  825.  
  826.       Hertz, J., Krogh, A., and Palmer, R. (1991).  Introduction to the
  827.       Theory of Neural Computation.  Addison-Wesley: Redwood City,
  828.       California.  ISBN 0-201-50395-6 (hardbound) and 0-201-51560-1
  829.       (paperbound)
  830.  
  831.       Hecht-Nielsen, R. (1990).  Neurocomputing.  Addison Wesley.
  832.  
  833.       Aleksander, I. and Morton, H. (1990).  An Introduction to Neural
  834.       Computing.  Chapman and Hall.  (ISBN 0-412-37780-2).
  835.  
  836.       Beale, R. and Jackson, T. (1990).  Neural Computing, an
  837.       Introduction.  Adam Hilger, IOP Publishing Ltd : Bristol.  (ISBN
  838.       0-85274-262-2).
  839.  
  840.       Dayhoff, J. E. (1990).  Neural Network Architectures: An
  841.       Introduction.  Van Nostrand Reinhold: New York.
  842.  
  843.       McClelland, J. L. and Rumelhart, D. E. (1988).  Explorations in
  844.       Parallel Distributed Processing: Computational Models of Cognition
  845.       and Perception (software manual).  The MIT Press.
  846.  
  847.       McCord Nelson, M. and Illingworth, W.T.  (1990).  A Practical Guide
  848.       to Neural Nets.  Addison-Wesley Publishing Company, Inc.  (ISBN
  849.       0-201-52376-0).
  850.  
  851.       Orchard, G.A.  & Phillips, W.A.  (1991).  Neural Computation: A
  852.       Beginner's Guide.  Lawrence Earlbaum Associates: London.
  853.  
  854.       Wasserman, P. D. (1989).  Neural Computing: Theory & Practice.  Van
  855.       Nostrand Reinhold: New York.  (ISBN 0-442-20743-3)
  856.  
  857.  
  858.       The Brain v1.2 - User's Manual                               Page 18
  859.       ____________________________________________________________________
  860.  
  861.  
  862.                    License Agreement
  863.                    -----------------
  864.  
  865.       You may use the distribution version of The Brain for evaluation
  866.       purposes only.  Once you start using this program regularly for
  867.       educational, commercial, or private use you must register this
  868.       product (see the file 'register.doc').  You may share this
  869.       distribution version with anyone you choose so long as it is
  870.       unaltered, and so long as you follow the distribution policy
  871.       outlined in the file 'vendor.doc'.
  872.  
  873.       You are not permitted to share or otherwise distribute, in whole or
  874.       in part, the registered version.  By registering this product you
  875.       acknowledge that this product represents a trade secret and agree to
  876.       protect it.  Misuse of a registered version is subject to collection
  877.       of 100 times the registration fee and all legal fees and costs.
  878.       Licenses are not transferable and may not be modified.
  879.  
  880.       DP COMPUTING DISCLAIMS ALL WARRANTIES RELATING TO THIS PRODUCT,
  881.       WHETHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY IMPLIED
  882.       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE,
  883.       AND ALL SUCH WARRANTIES ARE EXPRESSLY AND SPECIFICALLY DISCLAIMED.
  884.       NEITHER DP COMPUTING NOR ANYONE ELSE WHO HAS BEEN INVOLVED IN THE
  885.       CREATION, PRODUCTION, DELIVERY, OR DISTRIBUTION OF THIS PRODUCT
  886.       SHALL BE LIABLE FOR ANY INDIRECT, CONSEQUENTIAL, OR INCIDENTAL
  887.       DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE SUCH SOFTWARE
  888.       EVEN IF DP COMPUTING HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
  889.       DAMAGES OR CLAIMS.  IN NO EVENT SHALL DP COMPUTING'S LIABILITY FOR
  890.       ANY DAMAGES EVER EXCEED THE PRICE PAID FOR THE LICENSE TO USE THE
  891.       SOFTWARE REGARDLESS OF THE FORM OF THE CLAIM.  THE PERSON USING THE
  892.       SOFTWARE BEARS ALL RISKS AS TO THE QUALITY AND PERFORMANCE OF THE
  893.       SOFTWARE.
  894.  
  895.       It is the users responsibility to determine whether the product will
  896.       work reliably on their equipment and for their specific needs.
  897.       That is the purpose of this evaluation version.  DP Computing does
  898.       not imply in any manner that this software is suitable for any given
  899.       application or purpose.
  900.  
  901.       If any bugs are found please let us know and return a copy of the
  902.       product with the bugs in it and we will do our best to fix it.
  903.  
  904.       If you don't agree with these conditions, delete this product from
  905.       your disks.
  906.  
  907.  
  908.       The Brain v1.2 - User's Manual                               Page 19
  909.       ____________________________________________________________________
  910.  
  911.  
  912.                  Support Policy
  913.                  --------------
  914.  
  915.       DP Computing is fully committed to providing the best possible
  916.       support for our clients.  If you have any problems at all please
  917.       feel free to contact DP Computing or one of our support sites
  918.       (listed in the file 'support.doc').
  919.  
  920.       We will provide support for registered users for up to 3 months
  921.       following the registration of the product.  This support is for
  922.       correcting bugs in the software and manuals and does not include
  923.       advice on how to solve various problems using the neural network.
  924.  
  925.       Questions and advice on "The Brain" and neural networks in
  926.       general may be answered depending upon time constraints.  DP
  927.       Computing is also available for contract work on the use of neural
  928.       networks to solve specific problems.  Please call for details.
  929.  
  930.                   Distribution Policy
  931.                   -------------------
  932.  
  933.       All DP Computing products are protected under Australian and
  934.       International (c) copyright laws.  As a shareware distributor you
  935.       have permission to distribute any of DP Computing's shareware
  936.       products as long as:
  937.  
  938.           - it is kept in its present electronic form.
  939.  
  940.           - it is clearly identified as shareware.
  941.  
  942.           - all copyright notices remain intact.
  943.  
  944.           - no file in this distribution package is modified or
  945.         deleted.
  946.  
  947.           - we don't request you stop.
  948.  
  949.       You may archive the programs, unarchive them, use your own
  950.       installation routines, include them with other programs on a disk,
  951.       etc., so long as you follow the above rules.
  952.  
  953.       If you are a shareware distributor we would appreciate a copy of
  954.       your catalog and the disk on which the program is placed.  In
  955.       return, we will send you all updates to the program.  BBS owners are
  956.       also urged to drop us a line so that we can keep you up to date with
  957.       future releases.  Shareware distributors and bulletin board systems
  958.       may be named in our documentation as distribution sites if so
  959.       desired.
  960.  
  961.  
  962.  
  963.       The Brain v1.2 - User's Manual                               Page 20
  964.       ____________________________________________________________________
  965.  
  966.       If you have any questions, complaints, or concerns please contact me:
  967.  
  968.       David Perkovic
  969.       DP Computing
  970.       PO Box 712
  971.       Noarlunga Center SA 5162
  972.       Australia
  973.  
  974.       Ph: +61 8 326 4364 (International)     
  975.          08 326 4364 (Within Australia)
  976.  
  977.       Internet: perkovic@cleese.apana.org.au
  978.         dpc@mep.com
  979.  
  980.  
  981.       International:
  982.  
  983.       If you are a publisher interested in supporting or translating our
  984.       products please contact us for further information.  Anyone
  985.       interested in providing registration and/or distribution services
  986.       outside of Australia please contact us at the above address.
  987.  
  988.  
  989.       Site licenses available.
  990.  
  991.  
  992.  
  993.  
  994.                    About This Manual
  995.                    -----------------
  996.  
  997.       This manual was written by David Perkovic (author of The Brain) and
  998.       laid out / edited by Eugene Mallay.
  999.  
  1000.       Eugene Mallay is a freelance writer and editor specializing in
  1001.       handbooks and manuals.  He can be contacted at:
  1002.  
  1003.       Internet:      emallay@io.org                  Voice: (416) 261-4241
  1004.       Surface Mail:  945 Midland Ave, Suite 1003     Fax:   (416) 261-7374
  1005.              Scarborough, Ontario, Canada
  1006.              M1K 4G5
  1007.  
  1008.       International clients are welcomed.
  1009.  
  1010.  
  1011.